package cn.itcast.nems.studentrecord.dao.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import cn.itcast.nems.common.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 退学凭单批量导入
 * </p>
 *
 * @author 刘曙
 * @since 2024-03-24
 */
@Getter
@Setter
@TableName("e2_journal_dropout_batch_import")
public class JournalDropoutBatchImport extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 8359673197599149375L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 凭单类型;枚举值：退学
     */
    private String journalType;

    /**
     * 操作类型;枚举值：退学退费、退学不退费
     */
    private String operatorType;

    /**
     * 业务原因
     */
    private String bizReason;

    /**
     * 凭单办理日期
     */
    private LocalDateTime bizDate;

    /**
     * 退学学籍ID
     */
    private String studentRecordId;

    /**
     * 出班日期
     */
    private LocalDateTime outDate;

    /**
     * 应服务天数
     */
    private Integer serviceDays;

    /**
     * 实际服务天数
     */
    private Integer settlementDays;

    /**
     * 课耗金额
     */
    private BigDecimal settlementAmount;

    /**
     * 本次退费金额
     */
    private BigDecimal amount;

    /**
     * 是否贷款退费
     */
    private String loanFlag;

    /**
     * 是否已开发票
     */
    private String invoiceFlag;

    /**
     * 是否特殊申请
     */
    private String specialFlag;

    /**
     * 退费所属公司名称
     */
    private String companyName;

    /**
     * 备注
     */
    private String remark;

    /**
     * 发起人邮箱;最好是用邮箱，如果不是邮箱则用姓名。但姓名有可能不唯一导致导入失败！
     */
    private String creatorEmail;

    /**
     * 处理状态;枚举值：待处理｜PENDING、已完成｜FINISHED、处理失败｜FAILED
     */
    private String processState;

    /**
     * 处理结果说明
     */
    private String processDescription;

    /**
     * 处理重试次数
     */
    private Integer processRetriesNumber;
    
    /**
     * 处理成功后的凭单ID
     */
    private String processJournalId;
}
